import xadmin

from .models import Credit
class CreditModelAdmin(object):
    """用户积分收支记录"""
    list_display=["user","created_time","operation","number"]

    def save_models(self): # 类似于原来在django的admin站点下的save_model方法，数据保存时的钩子方法，会自动在管理员修改/添加当前模型数据的时候自动执行
        obj = self.new_obj # 客户端提交过来的数据会自动被xadmin保存成一个数据模型
        # 主键id，可以通过主键ID，判断本次报错是保存数据还是添加数据
        if obj.id is None:
            """添加记录"""
            if obj.operation == 1:
                # 扣除用户积分
                if obj.user.credit > obj.number:
                    obj.user.credit -=obj.number
                else:
                    raise Exception("积分不足！")
            else:
                # 添加用户积分
                obj.user.credit += obj.number
            obj.save()
            obj.user.save()

xadmin.site.register(Credit, CreditModelAdmin)